-- Network Working Group                                             B. Aboba
-- Request for Comments: 2620                                         G. Zorn
-- Category: Informational                                          Microsoft
--                                                                  June 1999
-- 
-- 
--                       RADIUS Accounting Client MIB

RADIUS-ACC-CLIENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
       Counter32, Integer32, Gauge32,
       IpAddress, TimeTicks, mib-2      FROM SNMPv2-SMI
       SnmpAdminString                  FROM SNMP-FRAMEWORK-MIB
       MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;

radiusAccClientMIB MODULE-IDENTITY
       LAST-UPDATED "9906110000Z" -- 11 Jun 1999
       ORGANIZATION "IETF RADIUS Working Group."
       CONTACT-INFO
          " Bernard Aboba
            Microsoft
            One Microsoft Way
            Redmond, WA  98052
            US

            Phone: +1 425 936 6605
            EMail: bernarda@microsoft.com"
       DESCRIPTION
             "The MIB module for entities implementing the client side of
              the Remote Access Dialin User Service (RADIUS) accounting
              protocol."
       REVISION "9906110000Z"    -- 11 Jun 1999
       DESCRIPTION "Initial version as published in RFC 2620"
       ::= { radiusAccounting 2 }

radiusMIB OBJECT-IDENTITY
       STATUS  current
       DESCRIPTION
             "The OID assigned to RADIUS MIB work by the IANA."
       ::= { mib-2 67 }

radiusAccounting  OBJECT IDENTIFIER ::= {radiusMIB 2}

radiusAccClientMIBObjects     OBJECT IDENTIFIER ::=
                                              { radiusAccClientMIB 1 }

radiusAccClient  OBJECT IDENTIFIER ::= { radiusAccClientMIBObjects 1 }

radiusAccClientInvalidServerAddresses OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Accounting-Response packets
             received from unknown addresses."
      ::= { radiusAccClient 1 }

radiusAccClientIdentifier OBJECT-TYPE
      SYNTAX SnmpAdminString
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The NAS-Identifier of the RADIUS accounting client. This
             is not necessarily the same as sysName in MIB II."
      ::= { radiusAccClient 2 }

radiusAccServerTable OBJECT-TYPE
      SYNTAX SEQUENCE OF RadiusAccServerEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
            "The (conceptual) table listing the RADIUS accounting
             servers with which the client shares a secret."
      ::= { radiusAccClient 3 }

radiusAccServerEntry OBJECT-TYPE
      SYNTAX     RadiusAccServerEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
            "An entry (conceptual row) representing a RADIUS
             accounting server with which the client shares a secret."
      INDEX      { radiusAccServerIndex }
      ::= { radiusAccServerTable 1 }

RadiusAccServerEntry ::= SEQUENCE {
      radiusAccServerIndex                           Integer32,
      radiusAccServerAddress                         IpAddress,
      radiusAccClientServerPortNumber                Integer32,
      radiusAccClientRoundTripTime                   TimeTicks,
      radiusAccClientRequests                        Counter32,
      radiusAccClientRetransmissions                 Counter32,
      radiusAccClientResponses                       Counter32,
      radiusAccClientMalformedResponses              Counter32,
      radiusAccClientBadAuthenticators               Counter32,
      radiusAccClientPendingRequests                   Gauge32,
      radiusAccClientTimeouts                        Counter32,
      radiusAccClientUnknownTypes                    Counter32,
      radiusAccClientPacketsDropped                  Counter32
}

radiusAccServerIndex OBJECT-TYPE
      SYNTAX     Integer32 (1..2147483647)
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
            "A number uniquely identifying each RADIUS
             Accounting server with which this client
             communicates."
      ::= { radiusAccServerEntry 1 }

radiusAccServerAddress OBJECT-TYPE
      SYNTAX     IpAddress
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
            "The IP address of the RADIUS accounting server
             referred to in this table entry."
      ::= { radiusAccServerEntry 2 }

radiusAccClientServerPortNumber  OBJECT-TYPE
      SYNTAX Integer32 (0..65535)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The UDP port the client is using to send requests to
             this server."
      ::= { radiusAccServerEntry 3 }

radiusAccClientRoundTripTime  OBJECT-TYPE
      SYNTAX TimeTicks
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The time interval between the most recent
             Accounting-Response and the Accounting-Request that
             matched it from this RADIUS accounting server."
      ::= { radiusAccServerEntry 4 }

-- Request/Response statistics
--
-- Requests = Responses + PendingRequests + ClientTimeouts
--
-- Responses - MalformedResponses - BadAuthenticators -
-- UnknownTypes - PacketsDropped = Successfully received

radiusAccClientRequests OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Accounting-Request packets
             sent. This does not include retransmissions."
      ::= { radiusAccServerEntry 5 }

radiusAccClientRetransmissions OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Accounting-Request packets
             retransmitted to this RADIUS accounting server.
             Retransmissions include retries where the
             Identifier and Acct-Delay have been updated, as
             well as those in which they remain the same."
      ::= { radiusAccServerEntry 6 }

radiusAccClientResponses OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS packets received on the
             accounting port from this server."
      ::= { radiusAccServerEntry 7 }

radiusAccClientMalformedResponses OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The number of malformed RADIUS Accounting-Response
              packets received from this server. Malformed packets
             include packets with an invalid length. Bad
             authenticators and unknown types are not included as
             malformed accounting responses."
      ::= { radiusAccServerEntry 8 }

radiusAccClientBadAuthenticators OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Accounting-Response
             packets which contained invalid authenticators
             received from this server."
      ::= { radiusAccServerEntry 9 }

radiusAccClientPendingRequests OBJECT-TYPE
      SYNTAX Gauge32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Accounting-Request packets
             sent to this server that have not yet timed out or
             received a response. This variable is incremented when an
             Accounting-Request is sent and decremented due to
             receipt of an Accounting-Response, a timeout or
             a retransmission."
      ::= { radiusAccServerEntry 10 }

radiusAccClientTimeouts OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
          "The number of accounting timeouts to this server.
           After a timeout the client may retry to the same
           server, send to a different server, or give up.
           A retry to the same server is counted as a
           retransmit as well as a timeout. A send to a different
           server is counted as an Accounting-Request as well as
           a timeout."
      ::= { radiusAccServerEntry  11 }

radiusAccClientUnknownTypes OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS packets of unknown type which
             were received from this server on the accounting port."
      ::= { radiusAccServerEntry  12 }

radiusAccClientPacketsDropped OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS packets which were received from
             this server on the accounting port and dropped for some
             other reason."
      ::= { radiusAccServerEntry  13 }

-- conformance information

radiusAccClientMIBConformance
          OBJECT IDENTIFIER ::= { radiusAccClientMIB 2 }
radiusAccClientMIBCompliances
          OBJECT IDENTIFIER ::= { radiusAccClientMIBConformance 1 }
radiusAccClientMIBGroups
          OBJECT IDENTIFIER ::= { radiusAccClientMIBConformance 2 }

-- compliance statements

radiusAccClientMIBCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
           "The compliance statement for accounting clients
            implementing the RADIUS Accounting Client MIB."
     MODULE  -- this module
         MANDATORY-GROUPS { radiusAccClientMIBGroup }

     ::= { radiusAccClientMIBCompliances 1 }


-- units of conformance

radiusAccClientMIBGroup OBJECT-GROUP
     OBJECTS { radiusAccClientIdentifier,
               radiusAccClientInvalidServerAddresses,
               radiusAccServerAddress,
               radiusAccClientServerPortNumber,
               radiusAccClientRoundTripTime,
               radiusAccClientRequests,
               radiusAccClientRetransmissions,
               radiusAccClientResponses,
               radiusAccClientMalformedResponses,
               radiusAccClientBadAuthenticators,
               radiusAccClientPendingRequests,
               radiusAccClientTimeouts,
               radiusAccClientUnknownTypes,
               radiusAccClientPacketsDropped
         }
     STATUS  current
     DESCRIPTION
           "The basic collection of objects providing management of
            RADIUS Accounting Clients."
     ::= { radiusAccClientMIBGroups 1 }

END